import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa a un Boton (el que sea).
 * @author Miguel Martinez Aguilar
 * @version 04 de abril de 2013
 */
public abstract class Boton extends ScrollActor
{
    // Declaracion de variables de instancia
    protected GreenfootImage[] img;// es un arreglo de 3 imagenes que usara el boton.
    
    /**
     * Este es el metodo constructor de boton.
     * @param normal: el nomnre de una imagen que adopta el boton cuando no hay cursor.
     * @param sobre: el nombre de una imagen que adopta el boton cuando el cursor esta sobre el.
     * @param press: el nombre de una imagen que adoptara el boton cuando se presiona.
     */
    public Boton(String normal, String sobre, String press) 
    {
        img = new GreenfootImage[3];
        img[0] = new GreenfootImage(normal);
        img[1] = new GreenfootImage(sobre);
        img[2] = new GreenfootImage(press);
    }
    
    /**
     * Este metodo resalta el boton seleccionado.
     * @param val: boleano que indica si se resalta este boton.
     */
    public void resalta(boolean val)
    {
        if(val)super.setImage(img[1]);
        else super.setImage(img[0]);
    }
    
    /**
     * Este metodo cambia la imagen del boton cuando este es precionado por un cursor.
     */
    public void presiona()
    {
        super.setImage(img[2]);
    }
    
    /**
     * Este es el metodo abstracto ejecuta de los botones
     */
    public abstract void ejecuta();
}
